﻿
using Cms.Core.Application.Service.Dto;
using Cms.Core.Infrastructure.Dependency;
using Cms.Core.Infrastructure.Ui;
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Threading.Tasks;

namespace Cms.Core.Application.IService
{
    /// <summary>
    /// 审核接口
    /// </summary>
    public interface IAuditService: IScopeDependency
    {

        /// <summary>
        /// 异步添加审核日志
        /// </summary>
        /// <param name="type"></param>
        /// <param name="method"></param>
        /// <param name="executionDuration"></param>
        /// <param name="arguments"></param>
        /// <param name="parameterFilter"></param>
        /// <param name="displayName"></param>
        /// <param name="exception"></param>
        /// <returns></returns>
        Task<OperationResult> AddAuditLogAsync(Type type, MethodInfo method, long? executionDuration, IDictionary<string, object> arguments, string parameterFilter = "", string displayName = "", Exception exception = null);
       



        /// <summary>
        /// 得到审计日志
        /// </summary>
        /// <param name="pageRequestData"></param>
        /// <returns></returns>

        Task<PageResult> GetAuditLogPageDataAsync(PageRequestData pageRequestData);
    }
}
